class ConfigStore
  attr_reader :file
  
  def initialize(file)
    @file =file
  end
  
  def load
    @config ||= YAML::load(open(file))
    self
  end
  
  def [](key)
    load
    @config[key]
  end
  
  def []=(key,value)
    @config[key]=value
  end
  
  def delete(*keys)
    keys.each{|key| config.delete(key)}
    save
    self
  end
  
  def update(c={})
    @config.merge!(c)
    save
    self
  end
  
  def save
    File.open(file,'w'){|f| f.write(YAML.dump(@config))}
  end
end